const express = require('express')
const expressJoi = require('@escook/express-joi')
const router = express.Router()
const {
  name_limit,
  email_limit,
  password_limit
} = require('../limit/userInfo.js')

const userInfoHandle = require('../router_handle/userInfo.js')

// 上传头像
router.post('/uploadAvatar', userInfoHandle.uploadAvatar)
// 绑定账号
router.post('/bindAccount', userInfoHandle.bindAccount)
// 获取用户信息
router.post('/getUserInfo', userInfoHandle.getUserInfo)
// 修改姓名
router.post('/changeName', expressJoi(name_limit), userInfoHandle.changeName)
// 修改邮箱
router.post('/changeEmail', expressJoi(email_limit), userInfoHandle.changeEmail)
// 修改性别
router.post('/changeSex', userInfoHandle.changeSex)
// 修改密码
router.post('/changePassword', userInfoHandle.changePassword)
// 忘记密码\重置密码
router.post('/updatePasswordWithVerification', userInfoHandle.updatePasswordWithVerification)
// ---------------用户管理
// 添加管理员
router.post('/createAdmin', userInfoHandle.createAdmin)
// 获取管理员列表
router.post('/getAdminList', userInfoHandle.getAdminList)
// 编辑管理员账号信息
router.post('/editAdmin', userInfoHandle.editAdmin)
// 对管理员取消赋权
router.post('/changeIdentityToUser', userInfoHandle.changeIdentityToUser)
// 对用户进行赋权
router.post('/changeIdentityToAdmin', userInfoHandle.changeIdentityToAdmin)
// 通过账号对用户搜索
router.post('/searchUser', userInfoHandle.searchUser)
// 通过部门对用户搜索
router.post('/searchUserByDepartment', userInfoHandle.searchUserByDepartment)
// 冻结用户
router.post('/banUser', userInfoHandle.banUser)
// 解冻用户
router.post('/hotUser', userInfoHandle.hotUser)
// 获取冻结用户列表
router.post('/getBanList', userInfoHandle.getBanList)
// 删除用户 deleteUser
router.post('/deleteUser', userInfoHandle.deleteUser)
// 获取对应身份的一个总人数
router.post('/getAdminListLength', userInfoHandle.getAdminListLength)
// 监听换页返回数据
router.post('/returnListData', userInfoHandle.returnListData)

module.exports = router
